//找不同
/*给定两个字符串 s 和 t ，它们只包含小写字母。

字符串 t 由字符串 s 随机重排，然后在随机位置添加一个字母。

请找出在 t 中被添加的字母。
*/
class Solution {
public:
    char findTheDifference(string s, string t) {
        int hash[26] = {0};
        for (int i = 0; i < s.size(); i++) {
            hash[s[i] - 'a']++;
        }
        for (int i = 0; i < t.size(); i++) {
            hash[t[i] - 'a']--;
            if (hash[t[i] - 'a'] < 0)
                return t[i];
        }
        return 0;
    }
};

//长度为三且各字符不同的子字符串
/*如果一个字符串不含有任何重复字符，我们称这个字符串为 好 字符串。

给你一个字符串 s ，请你返回 s 中长度为 3 的 好子字符串 的数量。

注意，如果相同的好子字符串出现多次，每一次都应该被记入答案之中。

子字符串 是一个字符串中连续的字符序列。
*/
class Solution {
    int hahs[26] = {0};

public:
    int countGoodSubstrings(string s) {
        int count = 0;
        int floag = 0;
        int right = 0;
        int left = 0;
        while (right < s.size()) {
            hahs[s[right] - 'a']++;
            if (hahs[s[right] - 'a'] <= 1)
                floag++;
            if (right - left == 2) {
                if (floag == 3)
                    count++;
                if (hahs[s[left] - 'a'] <= 1)
                    floag--;
                hahs[s[left] - 'a']--;
                left++;
            }
            right++;
        }
        return count;
    }
};